В основе архитектуры СУБД LDBF лежит уже традиционная модель клиент-сервер.При этом база данных располагается на UNIX-компьютере, прикладная программа ( клиент ) может выполняться на том же или другом UNIX компьютере или на PC под управлением MS-Windows или MS-DOS.
База данных представляет
собой набор DBF файлов совместимых по индексам с ситемой FoxPro или dBase IV.
Взаимодействие клиента и сервера ведется с использованием LDBF API. Клиент
передает серверу запросы,а сервер шлет клиенту результаты их выполнения.
Поддерживается сетевой протокол TCP/IP.
В LDBF API реализован подход, принятый в традиционных xBase системах ( dBase, Foxpro, Clipper ). Данный подход основан на механизме управления записями и понятии "текущая запись". При работе с таблицей в один момент времени обрабатывается одна запись, которая считывается в память клиента. Пользователь изменяет поля в этой записи и затем записывает изменения обратно в таблицу.Чтобы получить поля из другой записи, клиенту необходимо сформировать соответствующий запрос, после чего сервер,выполнив команду перемещения по таблице, вернет клиенту копию нужной записи. Все изменения полей выполняются локально затем,клиент формирует запрос на измененение записи. Выполнив этот запрос, сервер запишет ее непосредственно в таблицу. СУБД LDBF отличает от традиционных систем способ взаимодействия с таблицами базы данных. xBase системы непосредственно производят все изменения прямо в таблицах, а в случае LDBF все изменения производятся только сервером, который осуществляет дополнительные процедуры по поддержке целостности базы данных, присущие SQL серверам. Поддержка целостности базы данных в LDBF опирается на четыре механизма:
Механизм сохраненных процедур базы данных - это свойство сервера, позволяющее усилить его активную роль в управлении данными и существенно повысить эффективность их обработки. Он придает серверу большую гибкость за счет добавления в базу данных нового типа разделяемых параметризованных выполняемых обьектов( процедур ). Использование процедур базы данных преследует три цели:
а) одна процедура может быть использована несколькими прикладными программами - это позволяет существенно сократить время разработки программ за счет оформления их общих частей в виде процедур базы данных;
б) использование процедур позволяет существенно снизить траффик сети в системах с архитектурой клиент-сервер.Прикладная программа,вызывающая процедуру, передает серверу лишь ее имя и параметры. В процедуре,как правило, концентрируются повторяющиеся фрагменты из нескольких программ. Если бы эти фрагменты остались их частью, то они загружали бы сеть пересылкой записей от сервера к клиенту;
в) процедуры базы данных в сочетании с правилами, о которых будет
сказано ниже, предоставляют администратору базы данных ( DBA ) мощные средства
поддержки целостности базы данных.
Для написания сохраненных процедур, используется свободно распространяемый
Си-подобный язык стэкового типа S-Lang, созданный Джоном Дэвисом ( John Davis, davis@space.mit.edu ).
Механизм правил позволяет программировать
обработку ситуаций, возникающих при обновлении базы данных. Правила назначаются
таблице и применяются при выполнении над ней операций включения ( insert, append ), удаления
(delete) или обновления ( update, modify ) записей. Применение правила заключается
в проверке сформулированных в нем условий, при выполнении которых происходит
вызов специфицированной внутри правила процедуры базы данных. Важно, что правило
применяется как до выполнения операции, которая, при необходимости,может быть
отвергнута,так и после операции. Таким образом, правило позволяет не только определить
реакцию сервера на любое изменение состояния базы данных, но и обеспечить
отражение некоторых законов предметной области, для которой создается база данных.
Традиционно такие правила предметной области отражались непосредственно в прикладных
программах.При изменении правил возникала необходимость исправления программ, что
сильно увеличивало накладные расходы на их сопровождение.
Механизм событий в базе данных позволяет
прикладным программам и серверу уведомлять другие программы о наступлении
в базе данных определенного события. Как клиенты так и сервер могут создавать
события и посылать их друг другу. События могут трактоваться как расширение
системы правил для обработки нестандартных ситуаций, которые невозможно реализовать
с помощью стандартного механизма.
Под транзакцией понимается неделимая с точки зрения воздействия
на базу данных последовательность операторов манипулирования данными (удаление,
вставки, изменения) такая, что либо результаты всех операторов, входящих в
транзакцию, отображаются в базе данных, либо воздействие всех этих операторов
полностью отсутсвует. Понятие транзакции имеет непосредственную связь с понятием
целостности базы данных. Очень часто база данных может обладать такими ограничениями
целостности, которые просто невозможно не нарушить, выполняя только один оператор
изменения. Поэтому для подобных ограничений целостности допускается их нарушение
внутри транзакции с тем условием, чтобы к моменту завершения транзакции условия целостности
были cоблюдены. Каждая транзакция начинается при целостном состоянии базы данных
и должна оставить это состояние после своего завершения. Несоблюдение этого условия
приводит к тому, что вместо фиксации результатов транзакции происходит ее откат, и
база данных остается в таком состоянии, в котором находилась к моменту начала транзакции.
Если Вы в первый раз работаете с СУБД LDBF, то настоятельно
советуем Вам прочитать данную главу и следующую за ней, чтобы дальнейшая
работа в системе не вызывала затруднений.
Из этой главы Вы можете узнать:
Для использования LDBF требуется операционная система UNIX (в
зависимости от версии продукта: Linux, UnixWare(r), BSD/OS, Interactive UNIX, SCO UNIX).
Рекомендуется следующая аппаратная конфигурация:
Заполните, пожалуйста, регистрационную карточку, прилагающуюся
к данному руководству и верните ее в фирму "Надежда",когда сочтете
возможным.В этом случае мы сможем высылать Вам информацию о новых продуктах,
новых версиях СУБД LDBF, и, возможно, другую полезную информацию.Мы также ответим
на все Ваши вопросы, если Вы не найдете ответа на них в этом руководстве.
Мы предполагаем,что Вы знаете,как работать в операционной системе UNIX и
знакомы с принципами и методами работы принятыми в семействе xBase-систем. Если
что-то из перечисленного вызывает у Вас затруднения, мы рекомендуем обратиться
к соответствующей литературе.
LDBF - это система управления базами данных для ОС UNIX поддерживающая
архитектуру клиент - сервер. В СУБД LDBF для хранения данных используются
файлы в формате DBF и индексы в формате CDX ( совместимые с FoxPro ) или
MDX (совместимые с dBase IV).
Учитывая то, что LDBF работает под управлением ОС UNIX, она вобрала
в себя все преимущества свойственные данной операционной системе. Теперь у Вас появилась
возможность осуществлять удаленный доступ к данным, расположенным на UNIX - компьютере,
с любой рабочей станции по протоколу
TCP/IP.
В качестве рабочих станций могут выступать компьютеры под управлением
Windows 3.1, WFW 3.11, Windows 95.
Опираясь на систему разграничения доступа характерную для всех UNIX - систем,
теперь есть возможность повысить уровень защиты информации в базах данных,
которым можно управлять, регулируя его от полного доступа к БД до полного
запрета.
Благодаря реализованной СУБД LDBF поддержке архитектуры клиент-сервер,
всеми манипуляциями с данными управляет один процесс - сервер. Все остальные
процессы (клиенты) только посылают запросы на выполнение того или иного действия. В
связи с чем стало возможным повысить контроль за целостностью баз данных, свойственный
таким системам как Oracle, Informix, SyBase.
Поддержка целостности баз данных СУБД LDBF опирается на четыре основных
механизма: механизм правил, механизм сохраненных процедур, механизм транзакций,
механизм событий. Используя их, значительно упрощается процесс разработки
и сопровождения прикладных программ. Т.к. теперь нет необходимости описывать
особенности предметной области в программе и изменять ее каждый раз при добавлении
новых, достаточно их описать соответствующим правилом на сервере. Не нужно дублировать
одни и теже участки кода, встречающиеся в нескольких приложениях, можно оформить
их в виде одной сохраненной процедуры и сообщать серверу только имя этой процедуры
и входные параметры, что значительно снизит загрузку (траффик) Вашей сети.
При неожиданном сбое питания, если сервер выполнял какие-то
преобразования данных, целостность базы данных будет восстановлена благодаря
реализованному в СУБД LDBF механизму транзакций. В момент следующего запуска сервера
все прерванные транзакции будут завершены.
Механизм событий позволяет серверу инициализировать определенные
администратором БД действия при наступлении какого-либо события. Например,
сообщить всем пользователям, работающим в данный момент с базой данных,что ее обьем
подходит к критической отметке и надо временно приостановить работу.
Кроме того, используя преимущества архитектуры клиент-сервер,
Вы реально снизите траффик сети за счет пересылки только необходимых данных.
В основе СУБД LDBF реализован подход, свойственныйвсем xBase-системам
(Clipper, FoxBase, Foxpro), что позволит разработчикам xBase-приложений
без дополнительной подготовки использовать этот программный продукт.
LDBF дает возможность использовать на рабочихместах "
устаревшую " технику (IBM PC AT совместимые компьютеры с 286 микропроцессором)
в качестве терминалов, в следствие чего повышается экономический эффект от
использования данного программного продукта.
Благодаря реализованному в LDBF CGI интерфейсу к World Wide Web Вы можете
позволить пользователям глобальной сети Internet иметь доступ к информации,
хранящейся в Ваших базах данных.
Прежде чем приступить к каким-либо действиям,сделайте резервную
копию ваших дистрибутивных дисков. Проверьте работу Вашего компьютера,
монитора и не забудьте включить их перед началом установки.
Проверьте, соответствует ли Ваш компьютер требованиям,
перечисленным выше.
1. Создайте каталог, где будет размещаться LDBF сервер (домашний каталог LDBF) и сделайте его текущим.Как правило это /usr/local/ldbf или /usr/ldbf.
2. Вставьте диск Э 1 в дисковод для гибких дисков.
3. В командной строке наберите команду:
4. Вставьте диск Э2 и повторите предыдущую команду.
В текущем каталоге должны находиться четыре файла:
ldbf.zip,
unzip,
install.sh,
ldbf1.zip.
5. Запустите install.sh. В текущем каталоге будут созданы необходимые
каталоги, образующие структуру домашнего каталога сервера LDBF.Все выполняемые
файлы размещены в подкаталогеbin,
административные и конфигурационные файлы в подкаталоге etc.
В подкаталоге lib размещены библиотеки (libldbf.a,libwidget.a),которые
необходимые для написания приложений с помощью языка С.
Следует заметить, что подкаталоги bin,etc, log является
необходимыми для работы сервера и других утилит.
Внимание:
Если предполагается,что клиентами сервера LDBF будут пользователи,
работающие под MS-Windows,то LDBF сервер ДОЛЖЕН быть запущен с правами
суперпользователя (root), т.к. сервер в этом случае
будет проверять пароли, а эта функция
доступна только суперпользователю.
Группа, с правами которой запущен сервер,
называется административной группой,все пользователи, входящие в данную группу,
могут иметь права администратора сервера(см. параметр
group_allow в описании по
ldbf.conf).
Чтобы лицензировать сервер на то количество пользователей,
которое Вы приобрели, необходимо запустить программу ldbfsetup в том же
каталоге, где находится модуль ldbfd. Перед Вами появится экран с настройками
сервера.
При инсталяции в первый раз необходимо переместиться на элемент
'Change serial number' и нажать пробел. Перемещаться можно с помошью
клавиши Tab или стрелки вниз. Теперь необходимо ввести Ваш
серийный номер сервера и ключ активации. Если ввод осуществлен верно, на экране
отобразится информация на сколько пользователей лицензирован данный продукт.
Вы можете поменять любые другие параметры сервера в зависимости от Ваших задач.
Все эти параметры влияют на размер разделяемой памяти, который отображается
за надписью Shared memory size. Для записи результатов переместитесь
на кнопку 'Save' и нажмите Enter. Теперь сервер готов к работе
и лицензирован на указанное количество клиентов.
Поясним параметры,которые можно изменить:
Внимание:
ldbfsetup может быть вызвана в любое время, для изменения параметров
сервера. Необходимо заметить, что вызов ldbfsetup должен производиться
при незапущеном сервере.
Администратором
СУБД автоматически становится пользователь,
запустивший сервер, а все пользователи, входящие в
его группу, относятся к административной группе (параметр
group_allow файла
ldbf.conf).
Среда сервера состоит из выполняемого модуля ldbfd и файла конфигурации
etc/ldbf.conf. При запуске ldbfd читает параметры из файла etc/ldbf.conf
и создает соответсвующую среду базы данных. Наличие файла lldbf.conf необходимо,
так как только там описаны небходимые параметры для функционирования базы данных.
При запуске, если никакие параметры не указаны, сервер пытается открыть etc/ldbf.conf в
домашнем каталоге LDBF в подкаталоге etc. ldbfd может быть запущен как из
подкатадога bin, так и непосредсвенно из домашнего каталога LDBF.
Например:
Если существует переменная среды LDBFHOME, тогда cервер меняет текущий каталог на тот, что указан в этой переменной и там пытается открыть etc/ldbf.conf. Путь к домашнему каталогу можно указать в командной строке с помощью параметра '-c', например:
Серверу в командной строке можно указать следующие параметры:
Между параметром и данными не должно быть пробелов, например:
При запуске ldbfd, сервер становится фоновым процессом
системы UNIX или так называемым демоном (daemon).
ldbfd инициализирует указаный TCP порт и ожидает
на нем соединения с клиентами.Если не запрещено параметром '-u' использование
UNIX Domain sockets, то в каталоге /tmp образуется
специальный файл ldbf.socket. Это файл типа socket
(см. описание UNIX Domain sockets в технической документации)
посредством которого можно соединяться с сервером.Связь по этому протоколу
быстрее, чем по TCP/IP, поэтому,если клиент и сервер расположены на одной машине,
рекумендуется осуществлять соединение по UNIX Domain sockets.
После запуска сервера создается файл ldbf.log в
подкаталоге log, предназначенный
для вывода информации по подключению и отсоединению клиентов, а
также операциям,производимым над базой данных. Информация,которая заносится
в ldbf.log представлена в ASCII формате.
Например:
Light DataBase Filer 0.12 (beta pre-release) (5 user license) started (9899) Mon Feb 5 14:29:04 1996
User vlad ( localhost:193.124.57.152 ) logged in:0 (pid=9981) conn=1 Mon Feb 5 14:37:43 1996
Connection 1 (vlad:localhost) closed 13 (9981) Mon Feb 5 14:57:43 1996
User joy ( magic:192.168.1.6 ) logged in:0 (pid=9987) conn=2 Mon Feb 5 14:41:13 1996
Connection 2 ( joy: magic) closed 13 (9987) Mon Feb 5 15:00:43 1996
В подкаталоге etc создается файл ldbflog.tts,
в котором хранятся журналы транзакций.Вы можете просмотреть файлы транзакций
с помощью утилиты ldbflog.
ldbf-admin -d /usr/local/ldbf &
Следующие параметры можно указать ldbf-admin
http://your_internet_address:7980